/**
 * 
 */
package edu.ou.cs.youming.agents;

import java.util.Map;

import edu.ou.cs.youming.jaxb.types.Dictionary;
import edu.ou.cs.youming.jaxb.types.Feature;
import edu.ou.cs.youming.jaxb.types.Label;

/**
 * @author Youming Lin
 * 
 */
public interface Agent {
	/**
	 * Trains the agent
	 * 
	 * @param features
	 * @param dict
	 */
	public void train(final Map<Feature, Label> features, final Dictionary dict);

	/**
	 * Generates a predicted {@link Label} for the given feature.
	 * 
	 * @param feature
	 * @return
	 */
	public Label predict(final Feature feature);
}